package org.javahispano.javacup.tacticas_aceptadas.maxtor.org.javahispano.javacup.modelo.mio.servicios;

import org.javahispano.javacup.modelo.Posicion;
import org.javahispano.javacup.tacticas_aceptadas.maxtor.org.javahispano.javacup.modelo.mio.VectorFis;

public class DatosPartidoUpdater extends DatosPartido {

    private DatosPartidoUpdater() {
    }

    public static DatosPartidoUpdater getInstance() {
        return DatosPartidoHolder.instance;
    }

    private static class DatosPartidoHolder {

        private static DatosPartidoUpdater instance = new DatosPartidoUpdater();
    }

    public void decIteraciones(int id) {
        switch (id) {
            case ITER_PARTIDO:
                if (this.iteracionesPartido > 0) {
                    this.iteracionesPartido--;
                }
                break;
            case ITER_PASE_RESTANTES:
                if (this.iteracionesRestantes > 0) {
                    this.iteracionesRestantes--;
                }
                break;
            case PASES_EJECUTADOS:
                if (this.pasesEjecutados > 0) {
                    this.pasesEjecutados--;
                }
                break;
        }

    }

    public void incIteraciones(int id) {
        switch (id) {
            case ITER_PARTIDO:
                this.iteracionesPartido++;
                break;
            case ITER_PASE_RESTANTES:
                this.iteracionesRestantes++;
                break;
            case PASES_EJECUTADOS:
                this.pasesEjecutados++;
                break;
        }

    }

    public void updateDirecciones(Posicion[] direcciones) {
        if (direcciones == null) {
            return;
        }
        for (int x = 0; x < 11; x++) {
            if (direcciones[x] != null) {
                this.direcciones[x] = direcciones[x];
            }
        }
    }
    public void updateDireccion(int i, Posicion direccion) {
        this.direcciones[i] = direccion;
    }

    // 	-- setters
    public void setBalonAnterior(VectorFis balonAnterior) {
        this.balonAnterior = balonAnterior;
    }

    public void setDirecciones(Posicion[] direcciones) {
        this.direcciones = direcciones;
    }

    public void setIteracionesPartido(int iteracionesPartido) {
        this.iteracionesPartido = iteracionesPartido;
    }

    public void setIteracionesRestantes(int iteracionesRestantes) {
        this.iteracionesRestantes = iteracionesRestantes;
    }

    public void setPasesEjecutados(int pasesEjecutados) {
        this.pasesEjecutados = pasesEjecutados;
    }

    public void setIndiceReceptor(int indiceReceptor) {
        this.indiceReceptor = indiceReceptor;
    }

    public void setAtacando(boolean atacando) {
        this.atacando = atacando;
    }
}
